-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initialize global context before MainApp.onCreate() #3907
Initialize global context before MainApp.onCreate() #3907
Conversation
This could fix #3901 and possibly some other issues. |
Can I ask why not a module and then provideContext which can be injected everywhere to get application-wide context? |
* Temporary hack | ||
*/ | ||
private static void initGlobalContext(Context context) { | ||
mContext = context; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getApplicationContext()
is null
, as the app context is set somewhere between Application.attachBaseContext()
and Application.onCreate()
. However, because there is only 1 instance of MainApp
, there is no leak, so no worries.
Once the base context is attached, the context is basically functional, with some obscure exceptions around Looper
and whatnot. Those should be fully initialized before ContentProvider.onCreate()
kicks in.
c252efc
to
0c0e485
Compare
It is already done.
However, large portions of the code still call to The best we can do in this situation is to provide them a valid reference. This can't be worse than |
db8c7c1
to
1fe7e2e
Compare
1fe7e2e
to
c78b434
Compare
Codecov Report
@@ Coverage Diff @@
## master #3907 +/- ##
===========================================
- Coverage 6.57% 6.51% -0.06%
Complexity 1 1
===========================================
Files 320 320
Lines 30814 30816 +2
Branches 4403 4403
===========================================
- Hits 2027 2009 -18
- Misses 28492 28511 +19
- Partials 295 296 +1
|
Codecov Report
@@ Coverage Diff @@
## master #3907 +/- ##
========================================
Coverage ? 6.58%
Complexity ? 1
========================================
Files ? 320
Lines ? 30878
Branches ? 4411
========================================
Hits ? 2032
Misses ? 28550
Partials ? 296
|
b7a08b6
to
9a9d1f0
Compare
Initialize global context just after attaching base context. ContentProvider depend on MainApp.getAppContext(), but ContentProvider.onCreate() is called *before* Application.onCreate(). This hack should improve stability of ContentProviders at process bring-up time until we address this with a proper DI. Signed-off-by: Chris Narkiewicz <hello@ezaquarii.com>
9a9d1f0
to
2a08cb4
Compare
Codacy300Lint
SpotBugs (new)
SpotBugs (master)
|
71f3370 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] 0f50088 Merge pull request #3916 from jmue/cleanup/string_compare 7bb07a0 Update wording for store text (#3903) 4c72f3f Merge pull request #3923 from nextcloud/editOnShareLink 81ed32f allow edit on link share on a file 7d01ff7 - fix IT tests - re-organized build.gradle a bit a9afff7 Merge pull request #3929 from nextcloud/dependabot/gradle/org.powermock-powermock-core-2.0.2 71c6d99 bump all other powermock parts to 2.0.2 0421d26 Bump powermock-core from 2.0.0 to 2.0.2 1d28d1b Update with new wording from frontpage de3d3de Merge pull request #3924 from nextcloud/warnOnStable 69dd243 warn for wrong library branch on stable 2379b49 Merge pull request #3921 from nextcloud/dependabot/gradle/com.android.tools.build-gradle-3.4.0 c2730e8 Bump gradle from 3.3.2 to 3.4.0 b69169f unify empty string compare 8bb654b fix test & review comments d8b9d10 unify empty string compare 2f23a30 remove unused variable (#3920) 92df32e Merge pull request #3918 from nextcloud/codacyCleanup 091c003 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] 15ec487 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] da3c497 Merge commit '334155e707975e740a0a13b33d9b7bbedf40e9bc' b22f517 Merge pull request #3915 from jmue/cleanup/ocfile c7c6a98 use constant e6604c8 use constant caa2a91 Merge pull request #3912 from nextcloud/libraryUsage 334155e some cleanups 28f80cd Merge pull request #3907 from nextcloud/ezaquarii/initialize-main-app-context-before-content-providers-start 2afb934 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] 8be1157 Merge pull request #3899 from jmue/cleanup/uriutils 52020a9 direct usage of library project 4062d40 Merge pull request #3908 from nextcloud/missingInjectable 2a08cb4 Initialize global context before MainApp.onCreate() f02f482 Missing Injectable lead to half-stored account 02cbafe Merge pull request #3765 from nextcloud/showSharees dc7a2c0 show sharees 03e04e5 Merge pull request #3889 from nextcloud/checkUserId d65e94b Update wording for store text 585a3d0 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] 533debf - removed useNextcloudUserAgent -> we now use this everytime - removed any oAuth and saml stuff, as we rely on weblogin flow d544fa5 Merge pull request #3897 from nextcloud/ezaquarii/move-current-account-getter-to-user-account-manager 5b4ffba Merge pull request #3900 from nextcloud/codacyOnMaster 2757244 remove unused code 428a8bb show codacy count only on master 6b44074 Drone: update FindBugs results to reflect reduced error/warning count [skip ci] c62e89b Merge commit '442394f949ff2de86bcccae172d2e9d997ab2ef8' 442394f Migrate current account getter from AccountUtils to UserAccountManager 182b65e daily dev 20190414
Signed-off-by: Chris Narkiewicz hello@ezaquarii.com